

import Head from 'next/head'

<Head>
  <script>
    {
      `(function() {
         var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?e60fb290e204e04c5cb6f79b0ac1e697";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
       })();`
    }
  </script>
</Head>

![LangChain](https://pica.zhimg.com/50/v2-56e8bbb52aa271012541c1fe1ceb11a2_r.gif)
提取（Extraction）
===========================================================



> 
> 
> 
> [概念指南](https://docs.langchain.com/docs/use-cases/extraction) 
> 
> 
> 
> 
> 



大多数API和数据库仍然处理结构化信息。因此，为了更好地与这些信息一起工作，从文本中提取结构化信息可能是有用的。其中的例子包括：


* 从句子中提取一个结构化行以插入到数据库中
* 从长文档中提取多行以插入到数据库中
* 从用户查询中提取正确的API参数



这项工作与输出解析密切相关。
[输出解析器](../modules/prompts/output_parsers)负责指示LLM以特定格式响应。

在这种情况下，输出解析器指定您想要从文档中提取的数据的格式。然后，除了输出格式指令之外，提示应该还包括执行提取操作所需的指令。虽然常规的输出解析器对于响应数据的基本结构化已经足够好了，
但在进行提取时，您经常需要提取更复杂或嵌套的结构。

如果想深入了解提取，请查看[`kor`](https://eyurtsev.github.io/kor/)，
这个库使用现有的LangChain链和OutputParser抽象，
但深入研究了允许提取更复杂的模式。